package String类oj.最后一个单词的长度;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-20
 * Time: 14:10
 */
//2.最后一个单词的长度
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Test {
    //方法1：使用split方法 -> 切割字符串
    public static void main1(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        //使用split切割字符串，装在新的数组中
        String[] ss = s.split(" ");
        //取出最后一个索引的内容
        int len = ss[ss.length - 1].length();
        System.out.println(len);
    }
    //方法2：使用lastIndexOf() 和 substring()
    public static void main(String[] args) {
        //lastIndexOf() : 从字符串的后面开始找： " ",找到就返回索引，否则就返回-1
        //substring(int beginIndex) : 从beginIndex开始发生截断
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        //找最后一个空格后面的字符串
        int index = s.lastIndexOf(" ");
        //从index索引开始发生截断 -> 得到index+1后面的字符串
        int len = s.substring(index + 1).length();
        System.out.println(len);
    }
}

/*
方法1：
这段代码的功能是读取用户输入的一行文本，然后计算这行文本中最后一个单词的长度，并将这个长度打印出来。

创建Scanner对象：首先，代码创建了一个Scanner对象来读取用户的输入。
读取一行文本：使用scanner.nextLine()方法读取用户输入的一行文本，并将其存储在字符串s中。
分割字符串：使用s.split(" ")方法将字符串s按照空格分割成多个子字符串，并将这些子字符串存储在一个字符串数组ss中。
获取最后一个单词的长度：通过ss[ss.length - 1]获取数组ss中的最后一个元素（即最后一个单词），然后使用.length()方法计算这个单词的长度，并将长度存储在变量len中。
打印长度：最后，代码使用System.out.println(len)打印出最后一个单词的长度。
简而言之，这段代码就是读取一行文本，找出其中的最后一个单词，并输出这个单词的长度。

方法2：
这段代码的主要功能是读取用户输入的一行文本，然后找到这行文本中最后一个空格之后的部分，计算并输出这部分的长度。

读取输入：首先，通过Scanner对象读取用户输入的一行文本。
查找最后一个空格：使用lastIndexOf(" ")方法从输入的文本中查找最后一个空格的位置，并返回其索引。如果没有找到空格，该方法会返回-1，但在这个上下文中，我们假设输入中至少有一个空格。
截取字符串：使用substring(index + 1)方法从最后一个空格之后开始截取字符串。index + 1确保了我们从空格之后的第一个字符开始截取。
计算长度并输出：计算截取后的字符串的长度，并使用System.out.println输出这个长度。
简而言之，这段代码读取一行文本，找到最后一个空格后的字符串部分，并输出其长度。
 */
